package com.client.elements;

import java.util.ArrayList;
import java.util.Arrays;

import com.client.elements.canvas.Kreis_Striche;
import com.client.elements.canvas.KreiseDurcheinander;
import com.client.elements.canvas.KreiseDurcheinander_Mouse;
import com.client.elements.canvas.Kreisspiel;
import com.client.elements.canvas.Malen;
import com.client.elements.canvas.Tetris;
import com.client.elements.canvas.Watch;
import com.client.elements.normal.Dreigewinnt_KI;
import com.client.elements.normal.Table;
import com.client.elements.normal.Timestampaktualisierung;
import com.client.elements.normal.Zufallszahlensortierung;
import com.client.elements.normal.boxes.Boxes;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

public class CreateMenue {

	public static HorizontalPanel main = new HorizontalPanel();
	public static VerticalPanel sub_menu = new VerticalPanel();
	public static VerticalPanel sub_window = new VerticalPanel();

	static ArrayList<String> elemente_String = new ArrayList<String>(Arrays.asList(new String[]{
			"Standardfelder",
			"Zufallszahlensortierung",
			"Table",
			"DreiGewinnt",
			"Timestampaktualisierung",
			"Kreisspiel",
			"viele Kreise",
			"viele Kreise mit Maus",
			"Malen",
			"Kreis mit Strichen",
			"Watch",
			"Tetris"}));

	static ArrayList<Widget> elemente_widget = new ArrayList<Widget>(Arrays.asList(new Widget[]{
			Boxes.boxes(),
			Zufallszahlensortierung.zufallszahlensortierung(),
			Table.table(),
			Dreigewinnt_KI.dreigewinnt(),
			Timestampaktualisierung.zufallszahlenaktualisierung(),
			Kreisspiel.kreis_demo(), 
			KreiseDurcheinander.kreis_demo(), 
			KreiseDurcheinander_Mouse.kreis_demo(), 
			Malen.vierecke(),
			Kreis_Striche.draw(),
			Watch.watch(),
			Tetris.draw()}));


	public static void createMenue(){
		sub_window.addStyleName("border_left");
		main.addStyleName("border");
		sub_window.setWidth("500px");
		sub_window.setHeight("700px");
		sub_menu.setSpacing(15);
		sub_window.setSpacing(30);

		main.addStyleName("background_hellblau");

		main.add(sub_menu);
		main.add(sub_window);
		RootPanel.get().add(main);

		for (int i = 0; i < elemente_String.size(); i++) {
			sub_menu.add(btn(elemente_String.get(i), i));
		}
	}

	public static Button btn(String n, int i){
		Button b = new Button(n);
		b.getElement().setId(i + "");
		b.addClickHandler(c);
		b.setSize("150px", "35px");
		b.addStyleName("gwt-Button_blue");
		return b;
	}

	static ClickHandler c = new ClickHandler() {
		public void onClick(ClickEvent event) {
			sub_window.clear();
			sub_window.add(elemente_widget.get(Integer.parseInt(event.getRelativeElement().getId())));
		}
	};
}